package com.zhongying.jf.util;

import com.chinazyjr.framework.common.config.HConfig;
import com.zhongying.jf.ResConstants;
import com.zhongying.jf.exception.ZhongyingiException;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author liyuxuan
 * @Description 生成订单规则
 * @Email liyuxuan@chinazyjr.com
 * Created on 2017/8/30 21:52
 * Copyright (c) 2017 All Rights Reserved.
 */
public class GenerateOrderUtil {

    /**
     * 生成Nid  业务名-yyyyMMddHHmmssfff+随机3位数+用户名
     * @param userId
     * @param bizType
     * @return
     */
    public static String generateNid(String userId,Integer bizType){

        StringBuffer sb = new StringBuffer();
//        sb.append(getType(bizType));
        DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyyMMddHHmmssSSS");
        String s = new DateTime().toString(dtf);
        sb.append(s);
        int i = new Random().nextInt(1000);
        sb.append(i);
        sb.append(userId);
        //银行回调标识
        String identification = HConfig.GLOBAL.getProperty("CALL_BACK_IDENTIFICATION");
        sb.append(identification);
        String nid = sb.toString();

        return nid;
    }


//
//    private static String getType(Integer type){
//        String t = null;
//        switch (type){
//            case 0://订单号
//                t = "";
//                break;
//            case 1://实名
//                t = "SM-";
//                break;
//            case 2://绑卡
//                t = "BK-";
//                break;
//            case 21://绑卡推进
//                t = "BKTJ-";
//                break;
//            case 3://邮箱
//                t = "YX-";
//                break;
//            case 4://设置交易密码
//                t = "JYMM-";
//                break;
//            case 5://提现
//                t = "TX-";
//                break;
//            case 6://充值
//                t = "CZ-";
//                break;
//            case 7://创建用户
//                t = "CJYH-";
//                break;
//            case 8://投资
//                t = "TZ-";
//                break;
//            case 9://散标还款
//                t = "SHKC-";
//                break;
//            case 10://放款
//                t = "FK-";
//                break;
//            case 11://复投开关
//                t = "";
//                break;
//            case 15://散标回款
//                t = "SHKG-";
//                break;
//            case 14://备案
//                t="BA-";
//                break;
//            case 12://代提现
//                t = "DTX";
//                break;
//            case 13://债权
//                t = "ZQ";
//                break;
//            case 16://服务费
//                t = "FWF-";
//                break;
//            case 17://开户
//                t = "KH-";
//                break;
//            case 18://回款代偿
//                t = "HKDC-";
//                break;
//            case 19://回款资金解冻
//                t = "HKJD-";
//                break;
//            case 20://平台转账
//                t = "PTZZ-";
//                break;
//            default:
//                throw new ZhongyingiException(ResConstants.PARAM_NOT_RIGHT.getCode(),"bizType不合法");
//        }
//        return t;
//    }

    /**
     * 获得字符串中的数字
     * @param str
     * @return
     */
    public static String getNum(String str ){
        String regEx="[^0-9]";
        Pattern p = Pattern.compile(regEx);
        Matcher order = p.matcher(str);
        String ordId = order.replaceAll("").trim();
        return ordId;
    }
}
